The disclosures herein relate generally to computer systems, and more particularly, to a method and apparatus for windows based installation of software in a build-to-order computer system.
Presently in the computer manufacturing industry, computer manufacturers are employing hard disk drive image loading for the installation of software onto a hard drive of a computer system. Such image loading occurs during the manufacturing of the computer system, typically for producing only one of several different software bundles. Image loading, however, is an inflexible and resource intensive solution when considered for use in a custom configured build-to-order computer system manufacturing process.
In build-to-order manufacturing of custom configured computer systems, the computer manufacturing process of build-to-order includes not only hardware, but also software. This capability of build-to-order for computer systems enables customers to order virtually any combination of software application packages that can be downloaded and/or installed at the factory onto a custom configured computer system before the computer system is shipped. As presently available software packages are exponentially larger and more complex than software packages of the past, the task of installing various combinations of the same in the build-to-order manufacturing of custom configured computer systems is an equally complex process. In the software installation process of build-to-order computer manufacturing, independent software vendor (ISV) and independent hardware vendor (IHV) software must first be reverse engineered using internally developed tools in order to create automated packages for use in the factory installation of the same on a custom configured computer system. The present build-to-order computer system manufacturing factory software installation process does not provide an environment that can avoid the reverse engineering of an originating software vendor""s installation routine.
As discussed, for a build-to-order manufacturing process, installation of third party software on a custom configured computer system has required reverse engineering of the third party software install routine in order to incorporate an automatic installation of that third party software in the manufacturing process. That is, a desired third party software package would be manually installed on a test computer system, an investigation carried out to see what the install does, and then code would be written to replicate that install for custom configured computer systems to be built in the build-to-order manufacturing process. During reverse engineering, the content of an installation of the third party software installed on a given operating system platform of the test computer system is captured (i.e., recorded). The content may include added files and/or modifications to existing files having occurred as a result of the installation. In other words, by reverse engineering a method of installing third party software (without using the third party""s install software, except it""s use during the reverse engineering during the reverse engineering phase), the custom configured computer system manufacturer creates unique install routines for automatically installing various third party software packages on the unique custom configured computer systems being manufactured.
Operating system setup (OS setup) is a process that the operating system goes through, either in the factory or at the customer site, at first boot and in which the operating system becomes fully functional. In the current process, suitable instructions are placed in the OS setup to hook into the OS setup for installing third party software packages using forced install installer software. The forced install installer software, generated from the reversed engineering effort, is specifically created for each respective third party software package for that purpose. Whenever OS setup calls the forced install installer for a given third party software package, the forced install installer makes changes to the target custom configured computer system as captured during the reverse engineering of the respective third party software package install. One disadvantage of the reverse engineered forced install method is that there is no querying of the operating system during the OS setup and forced install. The manufacturing process does not query the operating system to know what operating system it is. The operating system could include, for example, Windows 95, Windows 98, Windows NT, or any other operating system platform. As a result, a separate work effort is required for creating a reverse engineered forced install installer program for each third party software package and operating system platform combination. Reverse engineering of the third party software package installs also makes the build-to-order manufacturing process less economical.
A software download of a given third party software package includes placing the third party software code on a partitioned hard disk drive of a target computer system. Installing the third party software package on the target system includes integrating the third party software package with the operating system of the target system.
With reference to FIG. 1, a diagram illustrative of the two third party software packages installed on the hard disk drive of a target computer system is shown. A first software application may include an operating system, such as, Microsoft Windows 98 operating system. The Windows 98 circle 10 is representative of the files added to the hard drive as a result of installing the Windows 98 operating system. A second software package may include Microsoft Office 97. The Office 97 circle 12 is representative of files added to the hard drive as a result of installing the Office 97 software package onto the target computer system running the Windows 98 operating system. The intersection 14 of the Windows 98 circle 10 and the Office 97 circle 12 is representative of those files which have been modified as a result of installing Office 97 onto the hard drive of the target system. Additional third party software packages can be installed which will result in further added and modified files, the installation effects of which will be unique to the target computer system and as a function of any third party software applications which may already be installed on the target computer system. With the reverse engineering process, the content of the hard drive before an installation and after the installation is used to determine what files have been added, what files have been modified, etc. (i.e., collectively referred to as changes) as a consequence of a manual installation of a third party software application. The changes are recorded and used subsequently during the manufacture of custom configured computer systems during an automated forced install of a corresponding third party software package.
During the software download process, all files of the software application packages ordered for a custom configured computer system are downloaded from a network server (or other media) onto the hard disk drive of the target computer system. The target system is then rebooted, upon which the operating system (e.g., Windows 98) begins to setup. When the manufacturing process reaches a prescribed point in the operating system setup, respective changes which have been captured during the reverse engineering of a given third party install are then applied to the hard disk drive for each third party software application package ordered with the custom configured computer system. Files modified by one software installation may also be modified by another subsequent software installation. Forced install is a blind install wherein the last installation to modify a given shared file would endure. Forced install thus potentially adversely affects any previously installed software package on a given hard drive. All possible combinations of third party software packages on a target system are not reverse engineered, since to do the later would render the build-to-order manufacturing process uneconomical. With the reverse engineering process, the starting point begins with the operating system (e.g., Windows 95, Windows 98, Windows NT, or other operating system). Each third party software package install would need to be reverse engineered for use in an automated installation on a target computer system with a given operating system. In addition to the operating system platform, reverse engineering of the third party software package install is per language (i.e., English, French, German, Japanese, etc.). A reverse engineered install for Windows 95 English will most likely not work for Windows 98 English, nor for Windows 95 French, etc. With current build-to-order manufacturing of custom configured computer systems, computers are manufactured and shipped with one of approximately twenty-five (25) possible languages per operating system. If the manufacturer ships three (3) operating systems, then there exist possibly seventy-five (75=3xc3x9725) separate reverse engineering work efforts to support complete automated install of the third party software packages which are available for order from the manufacturer. In addition to developing the reverse engineered forced install of a third party software package, there is also qualification, testing, validation (i.e., integration testing), and piloting before such reverse engineered forced install can be placed on-line in the factory. All of the above requires time in addition to work effort. Reverse engineering of an install can adversely impact time-to-market for the introduction of a new operating system and/or third party software package to become an available option for order from the manufacturer.
With respect to forced install, development includes recording added files and modified files. Typically, development is performed on only one computer system which is assumed to be a good sample of what a give third party software application package will be installed on. In essence, however, there is no real way of installing an application on one computer system that replicates the permutations of all possible configurations which can be fabricated by the build-to-order factory. In other words, with the development of the forced install, one scenario is captured and then applied to different scenarios. In addition, personnel who perform the reverse engineering of a software package installation must have a prescribed high level of expertise in order to perform the reverse engineering in a reliable manner.
While reverse engineering provides a solution for software installation in build-to-order manufacturing of computer systems, it is however not without disadvantages. A first disadvantage of reverse engineering is that it is time consuming. Because of differences between operating system platform languages (e.g., English, French, German, Japanese, etc.), software applications normally need to be reverse engineered for each operating system platform language combination. For example, three operating systems multiplied by twenty-five (25) languages equals seventy-five (75) separate work efforts per software application package. Separate work efforts have a significant impact upon time to market. For example, a time to market of one month may be considered competitive, whereas, a time to market of six months is too long and non-competitive.
A second disadvantage of reverse engineering is that it requires a forced installation. That is, the output of reverse engineering is normally forced to install without regard to possible alternative configuration differences. This means that decision logic contained in the original application installation is lost with the reverse engineering. For example, if an application installs differently based on the detection and existence of certain hardware (e.g., a removable hard disk drive or other hardware), the corresponding installation logic is disadvantageously lost with the reverse engineering of the software application package""s installation.
Additionally, another disadvantage of reverse engineering is that it requires extensive testing. Reverse engineering is susceptible to the introduction of issues that would not otherwise exist in the actual application installation. Extensive configuration testing is thus required to ensure that a captured installation functions correctly. This is further compounded by the fact that each operating system language requires a separate work effort and each of those efforts have the opportunity to introduce unique incompatibilities.
An improved software installation process for use in the manufacturing of custom configured computer systems is desired.
According to one embodiment, a method for automated installation of software packages in a computer system includes loading an operating system onto the computer system. The operating system is provided with a hook for initiating a windows-based install of prescribed software packages during an operating system setup (OS setup). At least one prescribed software package and a corresponding windows-based software package installer are loaded onto the computer system. The operating system setup is then executed. Lastly, the windows-based install of the at least one prescribed software package is initiated in response to the hook, the windows-based install being carried out according to the corresponding software package installer.
The embodiments of the present disclosure advantageously provide for generation of more robust software application package installs in the build-to-order manufacturing process and provide for faster factory install development, wherein one install is applicable for multiple platforms and languages.